package cn.iocoder.yudao.module.exam.controller.admin.paper.vo;

import cn.iocoder.yudao.module.exam.controller.admin.question.vo.QuestionRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

import javax.validation.constraints.NotNull;

@Schema(description = "管理后台 - 试卷 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PaperRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "30122")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "试卷名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @ExcelProperty("试卷名称")
    private String paperName;

    @Schema(description = "考试时长（分钟）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("考试时长（分钟）")
    private Integer duration;



    @Schema(description = "试卷类型 1随机试卷 0固定出题", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("试卷类型 1随机试卷 0固定出题")
    private Integer paperType;

    @Schema(description = "单选题数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("单选题数量")
    private Integer singleChoiceNum;

    @Schema(description = "多选题数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("多选题数量")
    private Integer multipleChoiceNum;

    @Schema(description = "判断题数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("判断题数量")
    private Integer trueFalseNum;

    @Schema(description = "简答题数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("简答题数量")
    private Integer shortAnswerNum;

    @Schema(description = "问答题数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("问答题数量")
    private Integer essayNum;

    @Schema(description = "单选题分值", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("单选题分值")
    private BigDecimal singleChoiceScore;

    @Schema(description = "多选题不全选分值", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("多选题不全选分值")
    private BigDecimal multipleChoicePartialScore;

    @Schema(description = "多选题全对分值", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("多选题全对分值")
    private BigDecimal multipleChoiceFullScore;

    @Schema(description = "判断题分值", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("判断题分值")
    private BigDecimal trueFalseScore;

    @Schema(description = "简单题目数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("简单题目数量")
    private Integer easyNum;

    @Schema(description = "中等题目数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("中等题目数量")
    private Integer mediumNum;

    @Schema(description = "困难题目数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("困难题目数量")
    private Integer difficultNum;

    @Schema(description = "试卷总分", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("试卷总分")
    private BigDecimal totalScore;

    @Schema(description = "及格线", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("及格线")
    private BigDecimal passingScore;


    @Schema(description = "简答题数量")
    @ExcelProperty("简答题数量")
    private Integer fillNum;

    @Schema(description = "问答题数量")
    @ExcelProperty("问答题数量")
    private Integer calculateNum;




    @Schema(description = "单选题总分分值")
    @ExcelProperty("单选题总分分值")
    private BigDecimal singleChoiceTotalScore;

    @Schema(description = "多选题总分值")
    @ExcelProperty("多选题总分值")
    private BigDecimal multipleChoiceTotalScore;

    @Schema(description = "判断题总分值")
    @ExcelProperty("判断题总分值")
    private BigDecimal trueFalseTotalScore;

    @Schema(description = "填空题总分值")
    @ExcelProperty("填空题总分值")
    private BigDecimal fillTotalScore;

    @Schema(description = "简答题总分值")
    @ExcelProperty("简答题总分值")
    private BigDecimal shortAnswerTotalScore;

    @Schema(description = "问答题总分值")
    @ExcelProperty("问答题总分值")
    private BigDecimal essayTotalScore;

    @Schema(description = "计算题总分值")
    @ExcelProperty("计算题总分值")
    private BigDecimal calculateTotalScore;


    @Schema(description = "级难题目数量")
    @ExcelProperty("级难题目数量")
    private Integer extremelyDifficultNum;

    @Schema(description = "简单分值")
    @ExcelProperty("简单分值")
    private BigDecimal easyTotalScore;
    @Schema(description = "一般分值")
    @ExcelProperty("一般分值")
    private BigDecimal commonTotalScore;
    @Schema(description = "中等分值")
    @ExcelProperty("中等分值")
    private BigDecimal mediumTotalScore;
    @Schema(description = "困难分值")
    @ExcelProperty("困难分值")
    private BigDecimal difficultTotalScore;
    @Schema(description = "级难分值")
    @ExcelProperty("级难分值")
    private BigDecimal extremelyDifficultTotalScore;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
    @Schema(description = "题目集合")
    private List<QuestionRespVO> selectQuestionList;

}